package AIGUI;
//对话界面
import com.baidubce.qianfan.Qianfan;
import com.baidubce.qianfan.model.chat.ChatResponse;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

class TalkTOAI {
    public  void createAndShowGUI() {
        // 直接在代码中设置访问密钥和密钥
        String accessKey = "ALTAKtcDh0nQtP40NgZUAmDA4K";
        String secretKey = "57a949833c7b408a81e06959785d90cf";

        // 创建Qianfan对象
        Qianfan qianfan = new Qianfan(accessKey, secretKey);

        // 创建主窗口
        JFrame frame = new JFrame("AI 对话");
        frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
        frame.setSize(600, 400);
        frame.setLayout(new BorderLayout());

        // 创建一个带背景图片的面板
        JPanel backgroundPanel = new JPanel() {
            @Override
            protected void paintComponent(Graphics g) {
                super.paintComponent(g);
                // 加载背景图片
                ImageIcon icon = new ImageIcon("src/pic/006opV64gy1hock60878vj32yo1o1u0y.jpg"); // 请确保背景图片路径正确
                Image img = icon.getImage();
                g.drawImage(img, 0, 0, getWidth(), getHeight(), this);
            }
        };
        backgroundPanel.setLayout(new BorderLayout());
        frame.add(backgroundPanel);

        // 创建文本区域用于显示AI回答
        JTextArea outputArea = new JTextArea();
        outputArea.setEditable(false);
        outputArea.setLineWrap(true);
        outputArea.setWrapStyleWord(true);
        outputArea.setOpaque(false); // 使文本区域背景透明
        outputArea.setFont(new Font("微软雅黑", Font.PLAIN, 14)); // 使用支持中文的字体
        outputArea.setForeground(Color.BLACK); // 设置文本颜色为白色
        JScrollPane scrollPane = new JScrollPane(outputArea);
        scrollPane.setOpaque(false);
        scrollPane.getViewport().setOpaque(false);
        backgroundPanel.add(scrollPane, BorderLayout.CENTER);

        // 创建面板用于输入和发送按钮
        JPanel inputPanel = new JPanel();
        inputPanel.setLayout(new BorderLayout());
        inputPanel.setOpaque(false); // 使输入面板背景透明

        JTextField inputField = new JTextField();
        inputField.setFont(new Font("微软雅黑", Font.PLAIN, 14)); // 使用支持中文的字体
        inputPanel.add(inputField, BorderLayout.CENTER);

        JButton sendButton = new JButton("发送");
        sendButton.setFont(new Font("微软雅黑", Font.BOLD, 14)); // 使用支持中文的字体
        sendButton.setBackground(Color.BLUE);
        sendButton.setForeground(Color.WHITE);
        inputPanel.add(sendButton, BorderLayout.EAST);

        backgroundPanel.add(inputPanel, BorderLayout.SOUTH);

        // 添加发送按钮的事件监听器
        sendButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String userInput = inputField.getText();
                if (userInput.equals("退出")) {
                    //退出完之后，可以返回到主界面
                    System.exit(0);
                }

                // 发送用户输入到AI并获取回复
                ChatResponse response = qianfan.chatCompletion()
                        .model("ERNIE-4.0-8K-0104")
                        .addMessage("user", userInput)
                        .temperature(0.7)
                        .execute();

                String aiResponse = response.getResult();
                outputArea.append("HANDSOME BOY: " + userInput + "\n");
                outputArea.append("AI: " + aiResponse + "\n");
                inputField.setText("");
            }
        });

        // 显示窗口
        frame.setVisible(true);
    }
}
